package org.jeecg.modules.wlhy.hyzyb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.wlhy.customer.dto.HyCustomerAddressRecvZybDTO;
import org.jeecg.modules.wlhy.customer.dto.HyCustomerAddressSendZybDTO;
import org.jeecg.modules.wlhy.customer.entity.HyCustomerAddressReceive;
import org.jeecg.modules.wlhy.customer.entity.HyCustomerAddressSend;
import org.jeecg.modules.wlhy.hyzyb.dto.DeviceInfoDTO;
import org.jeecg.modules.wlhy.hyzyb.dto.ShippingFenceDTO;
import org.jeecg.modules.wlhy.hyzyb.entity.HyZybStatus;

import java.util.List;

public interface IHyZybService extends IService<HyZybStatus> {

    boolean isExistInThisOrder(String device, String vehicleId, String orderId);

    //503配置单线路多装货多卸货点圆形围栏
    //本接口为新接口，建议新接入企业使用该接口
    Result autoSetShippingFence503New(ShippingFenceDTO shippingFenceDTO, List<HyCustomerAddressSendZybDTO> sendAddressList, List<HyCustomerAddressRecvZybDTO> receiveAddressList);

    //自动创建运单模式
    Result autoSetShippingFence(ShippingFenceDTO shippingFenceDTO, HyCustomerAddressSend sendAddress, List<HyCustomerAddressReceive> receiveAddressList, String orderId, String orderNum);

    //Result setShippingFencePolygon(ShippingFenceDTO shippingFenceDTO, HyCustomerAddressSend sendAddress, List<HyCustomerAddressReceive> receiveAddressList);

    Result cancelAutoShippingFence(String device);

    Result cancelShippingFence(String shippingNoteNumber);

    //Result cancelShippingFence2(String shippingNoteNumber);

    Result removeDevice(String device, String orderId);

    Result getDeviceInfo(String device);

    Result getDeviceInfo(String device, String vehicleNumber);

    Result getShippingTrack(String shippingNoteNumber);

    List<String> getOrderIdsByDevice(String device);

    List<DeviceInfoDTO> getActiveList();
}
